package com.java214.elec.service.impl;

import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.java214.elec.dao.entityDao.IElecCommonMsgDao;
import com.java214.elec.entity.ElecCommonMsg;
import com.java214.elec.service.IElecCommonMsgService;
@Service(IElecCommonMsgService.SERVICE_NAME)
@Transactional(readOnly=true)
public class ElecCommonMsgServiceImpl implements IElecCommonMsgService {

	//注入dao层
	@Resource(name=IElecCommonMsgDao.SERVICE_NAME)
	private IElecCommonMsgDao commonMsgDao;

	/**  
	* @Name: findElecCommonMsg
	* @Description: 获取运行监控中的数据
	* @Author: 滕一帆（作者）
	* @Version: V1.00 （版本号）
	* @Create Date: 2019-11-13（创建日期）
	* @Parameters: 无
	* @Return: ElecCommonMsg：封装数据对象
	*/
	@Override
	public ElecCommonMsg findElecCommonMsg() {
		// TODO Auto-generated method stub
		List<ElecCommonMsg> list = commonMsgDao.findCollectionByConditionNoPage("", null, null);
		ElecCommonMsg commonMsg = null;
		if(list!=null && list.size()>0){
			commonMsg = list.get(0);
		}
		return commonMsg;
	}

	/**  
	* @Name: saveElecCommonMsg
	* @Description: 保存运行监控
	* @Author:滕一帆（作者）
	* @Version: V1.00 （版本号）
	* @Create Date: 2019-11-13（创建日期）
	* @Parameters: ElecCommonMsg：封装保存的参数
	* @Return: 无
	*/
	@Override
	@Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false)
	public void saveElecCommonMsg(ElecCommonMsg elecCommonMsg) {
		//1：查询运行监控表，获取运行监控表的数据，返回List<ElecCommonMsg> list，使用list作为判断数据库中是否存在数据
				List<ElecCommonMsg> list = commonMsgDao.findCollectionByConditionNoPage("", null, null);
				//如果list!=null:数据表表中存在数据，获取页面传递的2个参数，组织PO对象，执行更新（update）
				if(list!=null && list.size()>0){
					//方案一：先删除再创建
					//方案二：组织PO对象，执行update
					ElecCommonMsg commonMsg = list.get(0);
					commonMsg.setStationRun(elecCommonMsg.getStationRun());
					commonMsg.setDevRun(elecCommonMsg.getDevRun());
					commonMsg.setCreateDate(new Date());
					/****************************/
					//行不行，不行，a different object with the same identifier value was already associated with the session: 
					//一个Session中不能存放2个相同的OID的对象
//					elecCommonMsg.setComID(commonMsg.getComID());
//					elecCommonMsg.setCreateDate(new Date());
//					elecCommonMsgDao.update(elecCommonMsg);
				}
				//如果list==null:数据表表中不存在数据，获取页面传递的2个参数，组织PO对象，执行新增（save）
				else{
					elecCommonMsg.setCreateDate(new Date());
					commonMsgDao.save(elecCommonMsg);
				}
		
	}
}
